package com.hmkj.core.model.quote;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xiaoleilu.hutool.util.StrUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 分时数据封装
 *
 * @author Vector
 * @create 2017-11-13 17:05
 */
@Data
public class TrendData {

    /**
     * 合约代码
     */
    @JsonIgnore
    @ApiModelProperty(value = "合约代码")
    private String cc;
    /**
     * 市场类别
     */
    @JsonIgnore
    @ApiModelProperty(value = "市场类别")
    private String fet;
    /**
     * 产品代码
     */
    @JsonIgnore
    @ApiModelProperty(value = "产品代码")
    private String ct;
    /**
     * 分时时间
     */
    @ApiModelProperty(value = "分时时间")
    private String mt;
    /**
     * 日期
     */
    @ApiModelProperty(value = "日期")
    private String d;
    /**
     * 最新价
     */
    @ApiModelProperty(value = "最新价")
    private String np;
    /**
     * 平均价
     */
    @ApiModelProperty(value = "平均价")
    private String ap;
    /**
     * 成交数量
     */
    @ApiModelProperty(value = "成交数量")
    private String ba;
    /**
     * 成交金额
     */
    @ApiModelProperty(value = "成交金额")
    private String bb;
    /**
     * 分时成交量
     */
    @ApiModelProperty(value = "分时成交量")
    private String ma;
    /**
     * 最高价
     */
    @ApiModelProperty(value = "最高价")
    private String hp;
    /**
     * 最低价
     */
    @ApiModelProperty(value = "最低价")
    private String lp;
    /**
     * 开盘价
     */
    @ApiModelProperty(value = "开盘价")
    private String op;
    /**
     * 收盘价
     */
    @ApiModelProperty(value = "收盘价")
    private String cp;

    /**
     * 时间戳
     */
    @ApiModelProperty(value = "时间戳")
    private long dt;


    public long getDt() {
        String dtStr;
        if (StrUtil.isNotBlank(d) && StrUtil.isNotBlank(mt)) {
            dtStr = d + mt + "00";
        } else if (StrUtil.isNotBlank(d)) {
            dtStr = d + "000000";
        } else {
            dtStr = new SimpleDateFormat("yyyyMMdd").format(new Date()) + mt + "00";
        }
        try {
            return new SimpleDateFormat("yyyyMMddHHmmss").parse(dtStr).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0L;
//        try {
//            return new SimpleDateFormat("yyyyMMddHHmmss").parse( new SimpleDateFormat("yyyyMMdd").format(new Date()) + mt + "00").getTime();
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }
//        return 0L;
    }
}
